﻿using System.Collections.Generic;
using Data;
using UnityEngine;

namespace LoginUI.Login
{
    public class LoginMgr
    {
        // 单例
        private static LoginMgr _instance;

        public static LoginMgr Instance
        {
            get
            {
                if (_instance == null) _instance = new LoginMgr();
                return _instance;
            }
        }

        private LoginData _loginData;

        public LoginData LoginData
        {
            get
            {
                return _loginData;
            }
        }

        private RegisterData _registerData;

        public RegisterData RegisterData
        {
            get
            {
                return _registerData;
            }
        }

        private List<ServerInfo> _serverData;

        public List<ServerInfo> ServerData
        {
            get
            {
                return _serverData;
            }
        }

        // 构造函数
        private LoginMgr()
        {
            // json管理器loadData初始化加载 登录数据 注册数据 服务器数据
            _loginData = JsonMgr.Instance.LoadData<LoginData>("LoginData");
            _registerData = JsonMgr.Instance.LoadData<RegisterData>("RegisterData");
            _serverData = JsonMgr.Instance.LoadData<List<ServerInfo>>("ServerInfo");
            Debug.Log(_loginData);
        }

        // 保存登录数据
        public void SaveLoginData()
        {
            JsonMgr.Instance.SaveData(_loginData, "LoginData");
        }

        // 清除登录数据
        public void ClearLoginData()
        {
            _loginData = new LoginData();
            JsonMgr.Instance.SaveData(_loginData, "LoginData");
        }

        // 注册数据
        public void SaveRegisterData(string username, string password)
        {
            _registerData.registerInfo.Add(username, password);
            JsonMgr.Instance.SaveData(_registerData, "RegisterData");
        }

        // 查找当前id的服务器信息
        public ServerInfo FindServerInfo(int id)
        {
            return _serverData.Find(server => server.id == id);
        }
    }
}